<?php

namespace app\common\model;

use think\Db;
use think\Model;

class Manager extends Model
{
    /**
     * 数据完成
     * @var array
     */
    protected $auto = [];
    protected $insert = ['status', 'add_time', 'password'];

    protected function setStatusAttr()
    {
        return 1;
    }

    protected function setAddTimeAttr()
    {
        return time();
    }

    protected function setPasswordAttr($value)
    {
        return think_ucenter_md5($value, PASSWORD_KEY);
    }

    /**
     * 管理员登录
     * @param $manager
     * @param $password
     * @return bool|int
     */
    public function login($manager, $password)
    {
        $password_md5 = think_ucenter_md5($password, PASSWORD_KEY);

        if ($password_md5 != $manager['password']) {
            return -101;
        }
        //记录行为
        action_log('admin_login', 'Manager', $manager['mid'], $manager['mid']);

        /* 登录用户 */
        $this->autoLogin($manager);
        return true;
    }

    /**
     * 自动登录用户
     * @param  integer $user 用户信息数组
     */
    private function autoLogin($manager)
    {
        /* 更新登录信息 */
        $data = array(
            'mid' => $manager['mid'],
            'login_count' => $manager['login_count'] + 1,
            'last_login_time' => NOW_TIME,
            'last_login_ip' => get_client_ip(1),
        );
        $this->update($data);
        /* 记录登录SESSION和COOKIES */
        $auth = array(
            'mid' => $manager['mid'],
            'mname' => $manager['mname'],
            'last_login_time' => $manager['last_login_time'],
        );

        session('admin_auth', $auth);
        session('admin_auth_sign', data_auth_sign($auth));

    }

    /**
     * 注销当前用户
     * @return void
     */
    public function logout()
    {
        session('admin_auth', null);
        session('admin_auth_sign', null);
    }
}